home *** CD-ROM | disk | FTP | other *** search
-
- Cracking Tutorial - Part 1
- version 1.0, 21/9/1999
-
- Copyrights reserved to the <TeCh~LoRd> (sagid@netvision.net.il) of Black Sun Research Facility (blacksun.box.sk)
-
-
- index:
-
- 0. Introducion.
- 1. Disclaimer.
- 2. What is cracking?
- 3. Tools.
- 4. The main steps of cracking.
- 5. Basic terms in assembly.
- 6. Final conclusion.
- ===========================================================================================
-
-
- 0. Introducion:
-
-
- I have read many cracking tutorials lately.
- Frankly speaking, I myself learned cracking from tutorials (and some book, but this doesnt really matter).
- The majority of the cracking tutorials out there have a few disadvantages: either they are too long and contain a
- lot of garbage, or they are too short, and don't contain the basics.
-
- I decided to write a tutorial which will not have those two disadvantaged.
-
- Anyway, I divided the tutorial into 3 parts:
-
- Part 1: Introduction, tools and The basics of cracking.
- Part 2: Practical training, using W32Dasm, and HIEW
- Part 3: Key-generators.
-
-
- Welcome to the first part. ;-)
-
-
-
- 1. Disclaimer:
-
-
- I created this tutorial for informational purposes only!
- Much of the information in this document can be used to perform illegal activities!
- Don't attempt to do anything stated in this document!
- If you do attempt to do anything, you are solely and fully responsible for what you do!
- If you get caught and get in any kind of trouble, it's your own fault!
- If you intend to use this information to impress your friends, leave it and grow up!
- If you don't agree to this, do not read any more!
- If you crack a program, and either sell the crack or offer it for free, it is a crime!
-
-
- 2. What is Cracking?
-
-
- For me, cracking is:
- "Letting a program, which is on your computer behave as you want it
- to behave and not behave as someone else (the programmer) wants"
-
- As INTERN said:
- "Hey, it is your stuff right? your numbers, your bits,
- you should be able to do anything you wish to do with it :)"
-
- Actually, I agree to this.
-
- So cracking is modifying your programs, and making them work they way you want them to.
- U can get a free demo program, crack it, and use it.
- BUT!!!!
- I repeat, if you crack a program, and start selling the cracked version or even offering it for free, it is a crime!
- _____________________________________________________________________________
-
- After reading those three tutorials (this is the first one in thsi series),
- you will feel the power you have in your hands (I mean, in your head).
-
- well, let's get started?
-
-
- 3. Tools
-
-
- There are very few tools you need by now...
- It is very easy to find them over the web, cause they are quite popular:
-
- The first one is "Win32 Disassembler", which is also know ans W32Dasm.
-
- The Win32 Disassembler allows you to:
- 1. Disassemble files - translate the program to it's assembly origin, or machine code.
- The file types which can be disassambled in Win32 Disassembler:
- exe, 386, com, cpl, drv, dll, fon, mpd, ocx, vbx, vbx and sys.
- 2. Load the program proccess and trace the program.
- 3. Browse the disassembled file and go to any code location that you want.
- 4. Find text.
- 5. Execute, insert or remove jumps and calls.
- 6. Import and export functions.
- 7. Show a HEX display of a code area.
- 8. Show the list of the STRINGS, DIALOGS and REFERENCES.
- 9. Save the Disassembly source in text format.
-
- Well, u can get it in almost any cracking site, but I'll give you some URLs:
-
- 1. http://www.wco.com/~micuan/Zips/wdasm893.zip
- --------------------------------------------
- 2. HTTP://CRACKING.HOME.ML.ORG/
- ----------------------------
- 3. http://www.fortunecity.com/bally/waterford/18/w32dsm89.zip
- ----------------------------------------------------------
- 4. http://wowsites.com/meiner/w32dsm89.zip
- ---------------------------------------
-
- I think that's about enough.
- If any of these links goes down, please alert me (my Email address is sagid@netvision.net.il).
-
- The second tool you need is Hiew, which is also known as Hacker's View.
- The Hacker's View Tool allowes you to:
- 1. Disassemble files.
- 2. Make changes in the disassembled file, such as:
- write commands, modify commands and reassemble the file.
- 3. View the file in ASCII, Hex or assembly mode.
-
- Here are some URL's as well:
-
- 1. ftp://ftp.cs.tu-berlin.de/pub/msdos/mirrors/ftp.elf.stuba.sk/pc/utilprog/hiew584.zip
- ------------------------------------------------------------------------------------
- 2. ftp://ftp.bke.hu/pub/mirrors/sac/utilprog/hiew584.zip
- -----------------------------------------------------
- 3. ftp://ftp.uakom.sk/pub/mirrors/sac/utilprog/hiew584.zip
- -------------------------------------------------------
-
- You can also download an excellent program for cracking called Soft-ICe.
- Anyway, we won't need it in this part of the tutorial.
- Anyway, here are some URLs for Soft-ICe.
-
- SoftICE for Windows95:
-
- 1. http://swlink.net/~lachcik/insaine/si95w320.zip
- -----------------------------------------------
- 2. http://www.fortunecity.com/bally/waterford/18/siw95-32.zip
- ----------------------------------------------------------
- 3. http://www.pmk.ac.th/~arnontc/files/siw95-32.zip
- ------------------------------------------------
- 4. ftp://toolz.ucl.autograd.ru/Debugger/W95ICE32.ZIP
- -------------------------------------------------
-
- SoftICE for Windown NT:
-
- 1. http://www.pmk.ac.th/~arnontc/files/siwnt-32.zip
- ------------------------------------------------
- 2. ftp://ftp.sol.no/users/r/reopsahl/OrcPaks/orcpak9e.zip
- ------------------------------------------------------
- 3. http://www.fortunecity.com/bally/waterford/18/siwnt-32.zip
- ----------------------------------------------------------
- 4. ftp://toolz.ucl.autograd.ru/Debugger/WNTICE32.ZIP
- -------------------------------------------------
-
- There's also SoftICE for DOS, which I dont recommend.
-
- 1. http://www.pmk.ac.th/~arnontc/files/s-ice280.zip
- ------------------------------------------------
- 2. ftp://ftp.ula.ve/pub/msdos/cracking/s-ice280.zip
- ------------------------------------------------
- 3. http://202.102.15.149/~person/paulgao/cracks/SICE280.ZIP
- --------------------------------------------------------
- 4. ftp://ftp.sonic.net/pub/users/fryman/tools/S-ice280.zip
- -------------------------------------------------------
- 5. http://www.chibacity.com/chiba/files/unpro/prx-pcs3.zip
- -------------------------------------------------------
-
- You can also download the Win 3.1x versions at:
-
- 1. ftp://ftp.ula.ve/pub/msdos/cracking/m_wice13.zip
- ------------------------------------------------
- 2. http://fishheads.simplenet.com/BriansFiles/m_wice13.zip
- -------------------------------------------------------
- 3. http://www.magiccarpet.com/~odin/files/other/m_wice13.zip
- ---------------------------------------------------------
-
-
- 4. The Main steps of cracking
-
-
- There are 7 steps in the process of cracking:
-
- 1. Run the program you want to crack and learn it's standard behavior.
- Try to locate strings and keywords, try to enter the password and see how the program responds.
- 2. Open up the program with the W32Dasm and disassamble it.
- 3. Find typical and common strings in the disassembly that appeared in the program.
- In most cases, you have to look for keywords such as: password, name, date, expired,
- time limit, wrong, entered and so on.
- 4. Find and observe the password generator, find the learn protection routine and the API calls.
- 5. Try to understand the jumping mechanism of the protection.
- 6. Open up the program in HIEW.
- Change the jump of the flow control to it's oposite jump command, or nop it out.
- 7. Run and see how the change you have made in the original program affected it.
- Feel the power you have, the power of cracking, letting programs behave as you want them to.
-
- Learn those steps very well, until u dream of them, u will use them in every program you crack.
-
- 5. Basic terms in Assembly
-
- -------------
- A. Registers:
- -------------
- Registers are variables which are stored in your processor.
- The processor uses these variables for basic mathimatical and logical operations.
- The mostly used registers are: eax, ebx, ecx and edx.
- Sometimes you will see edi, esi, esp, ebp.
-
- There are three types of registers: 32Bit registers, 16Bit registers and 8Bit registers.
- The 32Bit registers start with e, such as eax.
- There are 16Bit equivalents of these registers.
- The only Difference between the two types is the veriable size.
- These registers are: ax, bx, cx, dx, di, si, sp, bp.
-
- There are also 8 bit registers.
- Tthe 8Bit registers are: al, ah, bl, bh, cl, ch, dl, dh.
- l - means the lower 8 bits of the 16Bit register.
- h - means the higher 8 bits of the 16Bit register.
- Here the l stands for the lower and h for the higher 8 bits of a 16 bit register.
-
- --------
- B. Flags
- --------
- Flags are Boolean variables (get 0 or 1 values).
- Flags are used by the processor for internal logical and mathimatical operations,
- in order to get the result of the operation.
- The most important flag is the Zero Flag, which can get zero or non-zero (1) values.
-
- ------------
- C. Code Flow
- ------------
- When you are analyzing a piece of code, you must understand that the processor
- is actually quite stupid, and all it does is to simply follow the basic instructions,
- line by line.
- It does anything the code tells it to do, and cannot do anything that is not written
- in the code (unless it has been run over by a herd of cows and abducted by aliens).
- This is why you have to think like the processor when you're analyzing a piece of code,
- and to act like it (just don't get used to it! Inhale, exhale, inhale, exhale... nevermind, stupid joke) :)
- You have to do everything the processor does, you have to compare registers and variables, execute jumps and calls,
- calculate Basic mathimatical operations, store and load register values and adresses, and so on...
-
- The processor has an instruction pointer especially for this, which is also called IP
- (it has nothing to do with IP addresses in the Internet Protocol, trust me).
- Using the instruction pointer, the processor points to the instruction that is about to be executed.
- The processor also has and executes instructions which change the code flow.
- These instructions can be function calls, any other routine calls, jumps, conditional jumps, which depend
- on the zero flag, negative conditional jumps...
-
-
- 6. Conclusion
-
-
- In this part of the tutorial we have learnt the meaning of the word cracking.
- Making programs behave as you want them to, and not the way the programmer wants them to.
- We have also learnt about the basic and the popular tools of cracking: W32Dasm, Hiew and SoftICE.
- And finally we have learnt the 7 main steps of cracking.
-
- Now, Before you go to the next chapter, you have to learn these 7 steps and download the tools
- mentioned above, because we can't go on to the next chapter unless you have those tools and know the steps.
-
- Cya in the next chapter.
-
- <TeCh~LoRd>
-
-
-
-
- Other tutorials by BSRF (blacksun.box.sk)
- -----------------------
- * FTP Security.
- * Sendmail Security.
- * Overclocking.
- * Ad and Spam Blocking.
- * Anonymity.
- * Info-Gathering.
- * Phreaking.
- * Advanced Phreaking.
- * More Phreaking.
- * IRC Warfare.
- * Proxies, Wingates and SOCKS Firewalls.
- * RM Networks.
- * The Windows Registry
- * Hardware
-